Florian Müllner [Mon, 9 Feb 2015 08:25:00 +0000 (09:25 +0100)]
layout: Add back affectsInputRegion
It was removed as actors that should not affect the input
region can simply be added to the uiGroup instead. However
the property is useful to add non-reactive chrome, but then
use trackChrome() to add a child to the input region.
Florian Müllner [Fri, 6 Feb 2015 18:27:02 +0000 (19:27 +0100)]
layout: Add MonitorConstraint:work-area property
Occasionally it makes sense to constrain to a monitor's work-area
rather than the entire monitor, so implement that behavior and add
a property to turn it on.
Florian Müllner [Fri, 13 Feb 2015 20:12:53 +0000 (21:12 +0100)]
messageTray: Work around glitches with hover tracking
St's hover tracking uses ClutterInputDevice, which unfortunately may use
an outdated cursor position to determine which actor is hovered. Using
MetaCursorTracker instead would fix this, but would require linking St with
libmutter - avoid this for now by manually fixing up Clutter's view of
the pointer position in the case where we rely on it working properly.
Florian Müllner [Fri, 13 Feb 2015 23:06:11 +0000 (00:06 +0100)]
messageTray: Limit number of notifications per source
While applications can no longer spam the users with a constant stream
of banner notifications, it is still possible to drown the summary in
the message list. Avoid this by limiting the number of notifications a
single source is allowed to display simultaniously.
test-xy-stress in libnotify's tests suddenly became fun again ...
Florian Müllner [Sat, 14 Feb 2015 02:18:52 +0000 (03:18 +0100)]
messageTray: Skip banner mode when queue exceeds a threshold
We want to shield users from being overloaded by an overwhelming stream
of notification banners, either due to coming back from idle/lock or
because an application is misbehaving. Previously we replaced all queued
notifications with a summary notification in that case, but now that
notifications appear in the summary immediately, we can simply stop
adding them to the queue and rely on the date menu to convey that
information to the user.
Florian Müllner [Sat, 14 Feb 2015 02:17:16 +0000 (03:17 +0100)]
dateMenu: Show indicator for messages that skipped banner mode
The summary may contain notifications that have not been seen by the user
and won't be shown as banner. Currently this is only the case for resident
notifications that are emitted by the focused app, but it will become more
common as we will start limiting the number of queued notifications.
Indicate to the user that more notifications are available by displaying a
small dot in the top bar button.
Florian Müllner [Sat, 14 Feb 2015 01:33:54 +0000 (02:33 +0100)]
messageTray: Notify when notifications are acknowledged
Source::count-updated is emitted as notifications are added or removed,
which is correct for the primary notification count. However it is not
for the unseen count, which will also change when a notification is
acknowledged without being removed. At the moment this does not matter,
as the unseen count is only used on the screen shield and notifications
are never acknowledged while the screen is locked. However we will soon
use the unseen count in the normal session as well, so emit the signal
in this case too.
Florian Müllner [Wed, 11 Feb 2015 16:23:30 +0000 (17:23 +0100)]
overviewControls: Remove message indicator
The message tray is now empty and about to be removed, so an indication
at the bottom edge of the overview becomes an odd location to convey the
status of the summary. We will eventually display an indication in the
top bar that unseen messages are available, for now just remove the
existing indicator.
Florian Müllner [Sat, 14 Feb 2015 02:19:49 +0000 (03:19 +0100)]
messageTray: Remove summary notification
Using a "There are too many notifications" notification is a bit odd,
and we will address the issue differently soon. So rather than update
the notification to do something else than opening the mostly empty and
useless tray when clicked, remove it altogether.
Florian Müllner [Sun, 15 Feb 2015 19:19:03 +0000 (20:19 +0100)]
messageTray: Remove _lastNotificationRemoved()
No Source subclass used it to do anything special, and with sources
no longer having any UI representation on their own, doing anything
else isn't useful either, so just kill off that hook.
Florian Müllner [Tue, 17 Feb 2015 02:49:24 +0000 (03:49 +0100)]
messageTray: Remove mute support
It was a nice feature, but with sources no longer being represented in
the UI, there is no longer a way for users to make use of it. If we want
to bring the feature back in the future, it would probably make more
sense to implement via the chat source's policy anyway.
Florian Müllner [Thu, 19 Feb 2015 13:31:11 +0000 (14:31 +0100)]
messageTray: Remove UI bits from Source
Since the summary area was removed from the message tray, Source are not
longer represented in the UI, so right-click menus and summary icons are
no longer a thing.
Florian Müllner [Wed, 11 Feb 2015 15:41:54 +0000 (16:41 +0100)]
messageTray: Remove the summary
The notification list in the calendar drop-down now functions as summary
area, so we can drop it from the message tray and remove a lot of complexity
from the state machine.
Florian Müllner [Sat, 14 Feb 2015 05:01:20 +0000 (06:01 +0100)]
notificationDaemon: Do the same for GTK+ notifications
There is not good reason why activating a GTK+ notification should
behave fundamentally different from fd.o notifications - we don't
raise the app because we expect it to perform an appropriate action,
but that does not include closing overview or calendar for us ...
Florian Müllner [Sat, 14 Feb 2015 04:59:01 +0000 (05:59 +0100)]
notificationDaemon: Close calendar when opening app
Just like we leave the overview when activating a notification,
the calendar popup should be closed - after all, the only case
where the calendar is open when a notification's default action
is activated is the user clicking an entry in the message list's
notification section.
Florian Müllner [Wed, 11 Feb 2015 19:41:56 +0000 (20:41 +0100)]
calendar: Add NotificationSection to message list
Display notifications that have not been dismissed in the message
list - eventually this will replace the existing message tray summary.
Notification messages show icon, title and one line of the body and
can be clicked to activate the default action. However they cannot be
expanded, so other actions or the full body text are not accessible
in this mode.
Florian Müllner [Thu, 19 Feb 2015 18:23:14 +0000 (19:23 +0100)]
messageTray: Notify on notification updates
Since notification support was added to the lock screen, notifications
are no longer necessarily represented by the actual notification actor
anymore. However when an existing notification is updated, external
representations currently become outdated.
Emit an appropriate signal which allows them to update.
Florian Müllner [Wed, 18 Feb 2015 23:00:25 +0000 (00:00 +0100)]
messageTray: Make Notification._onClicked handler public
When we will start to show notifications in the date drop-down, we
will not use the actual notification actor, but construct our own UI
based on Calendar.Message. This is similar to what we already do in
the lock screen, except that in this case clicking the notification
should activate the default action.
So rename the existing _onClicked() method to activate() to make it
clear that such use is acceptable. While not strictly necessary, also
rename the corresponding signal to match.
Florian Müllner [Fri, 13 Feb 2015 15:25:21 +0000 (16:25 +0100)]
dateMenu: Freeze popup size while browsing
As the popup's height depends on its content, which itself varies
depending on the selected day, browsing the calendar can result
in distracting size changes. To avoid this, the design calls for
the height to be frozen to the previous one in that case.
As the popup will always open with the current day selected, we
don't have to be very sophisticated and can just lock the popup
to the height corresponding to that day.
Florian Müllner [Thu, 5 Feb 2015 15:56:51 +0000 (16:56 +0100)]
dateMenu: Stop hiding the events list
The message list is not only a replacement for the calendar events
list, it will also take over the notification summary from the
message tray. As we start drawing events from other sources than
calendars, hiding it based on whether or not any calendars have
been set up is no longer appropriate, so always include it in the
calendar drop-down now.
Florian Müllner [Thu, 11 Dec 2014 17:29:17 +0000 (18:29 +0100)]
dateMenu: Replace EventsList with MessageList
Turn the existing EventsList into a MessageListSection and add the
message list to the calendar drop-down. The new events list only
displays events for the currently selected day, but in a more
structured and friendlier way than the old one.
Florian Müllner [Fri, 5 Dec 2014 15:24:35 +0000 (16:24 +0100)]
calendar: Add MessageList and Section/Message base types
The message list is a scrollable list that will hold sections of
different types of time-related messages like notifications,
calendar events or birthday reminders. When no section displays
any content for the selected date, a placeholder is shown instead.
Florian Müllner [Mon, 16 Feb 2015 18:40:00 +0000 (19:40 +0100)]
calendar: Copy URLHighlighter and friends here
We will start using both URLHighlighter and the _fixMarkup() helper
method the same way it's used in MessageTray. Usually we should
make fixMarkup() public and call the existing methods, but we are
planning for them to go away soon, so just keep two copies until
the original one is removed.
Florian Müllner [Fri, 13 Feb 2015 09:44:13 +0000 (10:44 +0100)]
panel: Add function to close the calendar
We will soon replace regular menu items in the calendar drop-down
with more complex elements.
However there will still be items that should close the drop down
when activated - rather than making the menu available throughout
the hierarchy (and eventually from outside as well when we add the
notifications list), have a public method on a global object just
like the ubiquitous Main.overview.hide().
Florian Müllner [Sat, 7 Feb 2015 00:41:11 +0000 (01:41 +0100)]
dateMenu: Remove link to Date & Time Settings
Menu items are on their way out of the calendar drop down, so let's
start with the easy one. This one is removed without replacement,
but then the Date & Time panel should be a one-time stop for most
users anyway, so not having a direct shortcut should not be much of
a problem. It is also the last remaining Settings item outside the
system menu ...
Florian Müllner [Fri, 30 Jan 2015 04:56:28 +0000 (05:56 +0100)]
dateMenu: Swap calendar and event columns
The new design has the events list on the left and the calendar on the
right, so swap them around and remove the vertical separator between
them in favor of some additional whitespace as in the mockups.
Carlos Soriano [Thu, 19 Feb 2015 20:51:38 +0000 (21:51 +0100)]
theme: Use gnome-shell-sass as a submodule
The sass sources now live in a project in GNOME, so they can
be used in multiple projects like gnome-shell-extensions.
Because of that, add gnome-shell-sass as a submodule of gnome-shell
and remove the sass sources from the theme directory.
Florian Müllner [Tue, 17 Feb 2015 23:01:09 +0000 (00:01 +0100)]
status: Stop using .panel-status-button
This used to be the style-class for status icons (i.e. icon-only
top bar items). It got unused a while ago when the class used
by status icons stopped using it - except for the keyboard indicator,
which set the class manually to appear as status icon despite not
being a real icon.
Now that the button highlight is provided by the .panel-button class
on a parent, the obsolete class results in a double border on the
keyboard indicator when active - just drop it from there as well
to fix.
Jakub Steiner [Tue, 17 Feb 2015 12:02:40 +0000 (13:02 +0100)]
theme: fix borders on the dash
- the goal is to have the items activate even on the edge
sadly this Fitzsiness is only working on the app vault icon
at the bottom, not the regular icons so far.
Carlos Soriano [Wed, 18 Feb 2015 16:07:59 +0000 (17:07 +0100)]
popupMenu: Add active CSS pseudo class
So we can style it differently than :hover.
We already have a active state for the menu items which includes
more than hover. For example, when the keyboard focus moves to a item
or we select programatically a item.
For this reason we need a style class named active for the meaning we
give to it in menu items, and a pseudo class active with the meaning
CSS has.
Carlos Soriano [Wed, 21 Jan 2015 16:26:23 +0000 (17:26 +0100)]
theme: Fix caption border gap
Since widnows decorations with round corners has a special shape,
which when scaled we can't match with a simple border-radius.
So to prevent to show a gap between the caption border and the
caption itself, apply a shadow.
Carlos Soriano [Sat, 25 Oct 2014 18:58:51 +0000 (20:58 +0200)]
theme: Match list row hover transition type of gtk
Currently we animate in both sides, hover on and hover off, and with
200ms. The downside of that it that it feels sluggish when passing with
the mouse hovering few items because the on transition is slow.
Match what gtk did for fix this for list rows hover state at
commit 52e91f1f74ecb943d, animating only on off hover. However,
gnome-shell doesn't support different kind of transitions for its css,
that will be lovely to have a easeOutQuad as well here.